#ifndef __GPRS_H
#define __GPRS_H

extern u8 AT[];		//AT握手指令

extern u8 CSQ[];		 //查询网络信号质量

extern u8 CPIN[];	  	//查询是否需要解SIM卡锁

extern u8 CGREG[];	  	 //查询是否已注册

extern u8 MIPCALL_CONNECT[];  //设置 APN 和活动的 PDP

extern u8 MIPCALL[];		  //检查是否获得IP地址

extern u8 MIPOPEN_CONNECT[];	  //建立TCP连接

extern u8 IP[];	  //发送远程网络IP地址

extern u8 PORT[];  //端口号

extern u8 MIPOPEN[];	   //查询是否连接

extern u8 MIPSEND[]; 	//发送数据指令

extern u8 MIPPUSH[];	//清除缓冲区内容

//extern u8 MIPCLOSE[13];	//关闭Socket连接

//extern u8 MIPCALL_CLOSE[12];	 //解除PDP连接,必须在关闭Socket连接之后

extern u8 time[];

extern u8 jingdu[];

extern u8 weidu[];

extern u8 speed1[];		   

extern u8 date[];

extern u8 speed2[];


extern u8 time_Alarm[];

extern u8 jingdu_Alarm[];

extern u8 weidu_Alarm[];

extern u8 speed1_Alarm[];		   

extern u8 date_Alarm[];

extern u8 speed2_Alarm[];

extern u8 id[];

extern u8 Temp_Array[18];

extern u8 Statu_Flag;

extern u8 Alarm;
extern u8 Alarm_W;

extern u8 Function;

extern u8 GPRS_Send_0k;

extern u8 Rec_GPRS_Conter;

extern u8 Rec_GPRS[];

extern u8 begin;
extern u8 START;
extern u8 REPLY;

extern u8 SEND;

extern u8 GPRS_Init_OK;

extern u8 PUSH;

extern u8 Buf_function;



void Send_Other(void);
void GPRS_Ready(void);
void Send_Log(void);
void Heart_Jump(void);
void Alarm_Message(void);
void Position(void);
void Send_MIPCALL_CONNECT(void);	//设置 APN 和活动的 PDP
void Send_MIPCALL(void);			//查询 APN 和活动的 PDP
void Send_MIPOPEN_CONNECT(void);	//建立TCP连接
void Send_MIPOPEN(void);			//查询是否建立TCP连接
void Send_MIPSEND(u8* data);		//发送数据指令
void Send_MIPPUSH(void);			//清除缓冲区内容
void Send_MIPCLOSE(void);			//关闭Socket连接
//void Send_MIPCALL_CLOSE(void);		//解除PDP连接,必须在关闭Socket连接之后

void ReturnMessage_Deal(void);
void AT_Command(u8 Send);

u8 *AscllToHEX(u8 *Ascll);

void GPRS_Send_Data(void);
void  GPRS_Data_TO_Buf(int16_t Alarm_Num_Up);
void  GPRS_Alarm_Data_TO_Buf(int16_t Alarm_Num_Up);
void  Buf_Data_TO_GPRS(int16_t Alarm_Num_Down);
void GPRS_Buf(void);
void Modify_Response(u8 Fun_W[]);
void Send_Other_Alarm(void);
void u8_to_Hex(u8 Alarm_Dat);

void Send_CreatConnect(void);
void Send_CloseConnect(void);
//u16 CalCrc(char *ptr, int count);
u8 CalCrc(char *ptr, int count);
u16 LoadToSendBuff(u8* data, u8 *SendBuff);
void send_3G_status(u8 status);

typedef void (* Function_cb)(void);		// 回调，用于重发指令 add by yc 20160706


#endif
